import java.util.Scanner;

// 抽象类 Shape，表示形状对象
abstract class Shape {
    // 常量 PI
    protected static final double PI = 3.1415926;

    // 抽象方法：计算面积
    public abstract double area();

    // 抽象方法：计算周长
    public abstract double perimeter();
}

// 椭圆类 Oval，继承自 Shape
class Oval extends Shape {
    private double a; // 长轴半径
    private double b; // 短轴半径

    // 构造方法：初始化长轴和短轴半径
    public Oval(double a, double b) {
        this.a = a;
        this.b = b;
    }

    // 构造方法：默认初始化长轴和短轴半径为 0
    public Oval() {
        this.a = 0;
        this.b = 0;
    }

    // 设置长轴半径
    public void setA(double a) {
        this.a = a;
    }

    // 获取长轴半径
    public double getA() {
        return a;
    }

    // 设置短轴半径
    public void setB(double b) {
        this.b = b;
    }

    // 获取短轴半径
    public double getB() {
        return b;
    }

    // 重写 area 方法，计算椭圆的面积
    @Override
    public double area() {
        return PI * a * b;
    }

    // 重写 perimeter 方法，计算椭圆的周长（近似公式）
    @Override
    public double perimeter() {
        return 2 * PI * Math.sqrt((a * a + b * b) / 2);
    }

    // 转换为字符串形式
    @Override
    public String toString() {
        return "Oval(a:" + a + ",b:" + b + ")";
    }
}

// 主类 Main
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        // 输入长轴和短轴半径
        double a = input.nextDouble();
        double b = input.nextDouble();

        // 创建椭圆对象
        Oval oval = new Oval(a, b);

        // 输出椭圆的面积和周长
        System.out.println("The area of " + oval.toString() + " is " + oval.area());
        System.out.println("The perimeterof " + oval.toString() + " is " + oval.perimeter());
    }
}